const app = getApp();
Page({
  data: {
    params: null,
    user: null,
    mobile: null,
    verify_submit_text: '获取验证码',
    verify_loading: false,
    verify_disabled: false,
    form_submit_loading: false,
    verify_time_total: 60,
    temp_clear_time: null,
    //判断小程序的API，回调，参数，组件等是否在当前版本可用。
    canIUse: wx.canIUse('button.open-type.getUserInfo'),
    AuthorizedLogin: '用户授权',
    UserPhone: '手机号授权',
    isWindows: app.globalData.isWindows,
    lbtop: app.globalData.lbtop + 'rpx',
    tittop: app.globalData.tittop + 'rpx',
  },

  /**
   * 页面加载初始化
   */
  onLoad(option) {
    // 设置用户信息

    this.setData({
      params: option,
      user: app.get_user_cache_info() || null,
      // isHide: true
    });
    // 标题设置
    wx.setNavigationBarTitle({
      title: (this.data.user == null) ? '授权用户信息' : '授权手机绑定'
    });
  },

  /**
   * 登录授权事件
   */
  get_user_info_event(e) {
    //console.log("get_user_info_event");
    this.user_auth_code(e.detail);

  },

  /**
   * 用户授权
   * auth_data  授权数据
   */
  user_auth_code(auth_data) {
    //console.log("user_auth_code");
    if ((auth_data.encryptedData || null) != null && (auth_data.iv || null) != null) {
      console.log("aaaa")
      app.user_auth_login(this, 'user_auth_back_event', auth_data);
    } else {
      app.showToast("授权失败");
    }
  },

  /**
   * 授权返回事件
   */
  user_auth_back_event() {
    //console.log("user_auth_back_event");
    var user = app.get_user_cache_info();
    this.setData({
      user: user || null
    });
    wx.showToast({
      icon: "none",
      title: '请继续点击获取手机号',
    });

    if (app.user_is_need_login(user) == false) {
      //  wx.navigateBack();
    }
  },


  /**
   * 登录授权事件
   */
  get_user_phone_event(e) {
    //console.log("get_user_phone_event");
    this.user_auth_phone(e.detail);
  },

  /**
   * 用户授权
   * auth_data  授权数据
   */
  user_auth_phone(auth_data) {
    //console.log("user_auth_phone");
    if ((auth_data.encryptedData || null) != null && (auth_data.iv || null) != null) {
      app.user_auth_login_getPhone(this, 'user_auth_phone_back_event', auth_data);
    } else {
      app.showToast("手机授权失败");
    }
  },

  /**
   * 授权返回事件
   */
  user_auth_phone_back_event() {
    //console.log("user_auth_phone_back_event");
    var user = app.get_user_cache_info();
    // var rcode = wx.getStorageSync("index_rcode");
    var rcode = app.globalData.rcode;
    if (rcode == null || rcode == '') {
      rcode = '';
    }
    this.setData({
      user: user || null,
      mobile: user.mobile,
    });
    app.mobile = user.mobile;
    // if (app.user_mobile_check(user) == false) {
    // wx.navigateBack();
    // wx.navigateBack({
    //   success: res => {
    //     let pages = getCurrentPages();
    //     let prevPage = pages[pages.length - 1];      // 上一个页面的对象
    //     // 当然, 也可以通过setData设置那个页面的其他数据
    //     prevPage.onLoad();    // 触发上一个页面的onLoad生命周期函数
    //   }
    // });
    // }
    wx.request({
      url: app.get_request_url("savemember", "user"),
      method: "POST",
      data: {
        'memberName': '',
        'memberSex': '',
        'mobile': user.mobile,
        'address': '',
        'memberId': '',
        'rcode': rcode,
      },
      dataType: "json",
      header: {
        'content-type': 'application/x-www-form-urlencoded'
      },
      success: res => {
        var data = res.data.data;
        app.globalData.userInfo = data;
        wx.setStorageSync('cache_user_info', data);
        wx.showModal({
          title: '提示',
          content: '注册/登录成功！',
          showCancel: false,
          success: function (res) {
            if (res.confirm) {
              // wx.navigateBack({
              //   success: res => {
              //     let pages = getCurrentPages();
              //     let prevPage = pages[pages.length - 1];      // 上一个页面的对象
              //     // 当然, 也可以通过setData设置那个页面的其他数据
              //     prevPage.onLoad();    // 触发上一个页面的onLoad生命周期函数
              //   }
              // });
              wx.reLaunch({
                url: "/pages/index/index"
              });
            }
          }
        });
      },
      fail: () => {
        app.showToast("服务器请求出错");
      },
    });
  },


  /**
   * 输入手机号码事件
   */
  bind_key_input(e) {
    this.setData({
      mobile: e.detail.value
    });
  },

  /**
   * 短信验证码发送
   */
  verify_send() {
    // 数据验证
    var validation = [{
      fields: 'mobile',
      msg: '请填写手机号码'
    }];

    if (app.fields_check(this.data, validation)) {
      // 网络请求
      var self = this;
      wx.showLoading({
        title: '发送中...'
      });
      this.setData({
        verify_submit_text: '发送中',
        verify_loading: true,
        verify_disabled: true
      });

      wx.request({
        url: app.get_request_url('regverifysend', 'user'),
        method: 'POST',
        data: {
          mobile: this.data.mobile
        },
        dataType: 'json',
        header: {
          'content-type': 'application/x-www-form-urlencoded'
        },
        success: (res) => {
          wx.hideLoading();
          if (res.data.code == 0) {
            this.setData({
              verify_loading: false
            });
            var temp_time = this.data.verify_time_total;
            this.data.temp_clear_time = setInterval(function () {
              if (temp_time <= 1) {
                clearInterval(self.data.temp_clear_time);
                self.setData({
                  verify_submit_text: '获取验证码',
                  verify_disabled: false
                });
              } else {
                temp_time--;
                self.setData({
                  verify_submit_text: '剩余 ' + temp_time + ' 秒'
                });
              }
            }, 1000);
          } else {
            this.setData({
              verify_submit_text: '获取验证码',
              verify_loading: false,
              verify_disabled: false
            });

            app.showToast(res.data.msg);
          }
        },
        fail: () => {
          wx.hideLoading();
          this.setData({
            verify_submit_text: '获取验证码',
            verify_loading: false,
            verify_disabled: false
          });

          app.showToast("服务器请求出错");
        }
      });
    }
  },

  /**
   * 表单提交
   */
  formSubmit(e) {
    // 邀请人参数
    var params = wx.getStorageSync(app.data.cache_launch_info_key) || null;

    // 数据验证
    var validation = [{
        fields: 'mobile',
        msg: '请填写手机号码'
      },
      {
        fields: 'verify',
        msg: '请填写验证码'
      },
      {
        fields: 'weixin_openid',
        msg: '授权id不能为空'
      }
    ];
    e.detail.value['weixin_openid'] = this.data.user.weixin_openid;
    e.detail.value['nickname'] = this.data.user.nickname;
    e.detail.value['avatar'] = this.data.user.avatar;
    e.detail.value['province'] = this.data.user.province;
    e.detail.value['city'] = this.data.user.city;
    e.detail.value['gender'] = this.data.user.gender;
    e.detail.value['weixin_unionid'] = this.data.user.weixin_unionid || '';
    e.detail.value['app_type'] = 'weixin';
    e.detail.value['referrer'] = (params == null) ? (this.data.user.referrer || 0) : (params.referrer || 0);
    if (app.fields_check(e.detail.value, validation)) {
      wx.showLoading({
        title: '处理中...'
      });
      this.setData({
        form_submit_loading: true
      });

      // 网络请求
      wx.request({
        url: app.get_request_url('reg', 'user'),
        method: 'POST',
        data: e.detail.value,
        dataType: 'json',
        header: {
          'content-type': 'application/x-www-form-urlencoded'
        },
        success: (res) => {
          wx.hideLoading();

          if (res.data.code == 0 && (res.data.data || null) != null) {
            clearInterval(this.data.temp_clear_time);
            app.showToast(res.data.msg, 'success');

            wx.setStorage({
              key: app.data.cache_user_info_key,
              data: res.data.data
            });

            var event_callback = this.data.params.event_callback || null;
            setTimeout(function () {
              // 触发回调函数
              if (event_callback != null) {
                getCurrentPages()[getCurrentPages().length - 2][event_callback]();
              }
              wx.navigateBack();
            }, 1000);
          } else {
            this.setData({
              form_submit_loading: false
            });
            app.showToast(res.data.msg);
          }
        },
        fail: () => {
          wx.hideLoading();
          this.setData({
            form_submit_loading: false
          });
          app.showToast("服务器请求出错");
        }
      });
    }
  },

  get_user_phone_cancel() {

    // wx.navigateBack();
    try {
      wx.clearStorageSync();
    } catch (e) {}
    app.globalData.userInfo = null;
    this.setData({
      userInfo: null
    });
    wx.reLaunch({
      url: '/pages/index/index?op=exithmb'
    });
  }

});